#ifndef HUD_H
#define HUD_H

#include <gl\gl.h>
#include "singleton.h"

//! Prosta klasa ulatwiajaca wypisywanie informacji na ekran
/*
	Przyklad uzycia:

	RenderScene()
	{
		... renderujemy scene ...
		.........................

		PutCanvas( 400, 300 );

			//teraz mozemy latwo pisac po ekranie
			Writer.Print( 100, 100, "bla bla" );
			Writer.Print( 0, 0, "ygfkayus" );

		TakeCanvas();
	}
*/
class Hud
{
 friend class Singleton< Hud >;

 public:

	//! Funkcja zapisuje aktualna macierz modelview i projekcji. Nastepnie ustawia projekcje ortogonalna co ulatwia pisanie po ekranie
	void PutCanvas( const int width, const int height );

	//! Funkcja wraca do macierzy odlozonych na stos przez funkcje PutCanvas
	void TakeCanvas();

 private:

	Hud() { }
	Hud(const Hud&) { }
	Hud& operator = (const Hud&) { }
};
#define HudAPI Singleton< Hud >::Instance()

#endif